﻿using System.Windows.Controls.Primitives;
using System.Windows;
using Shatkotha.WPF.Global.Bases;

namespace Shatkotha.WPF.Global.Common.Controls.Dialog
{
    public interface IDialogPresenter:IPresenter
    {

        DialogResult DialogResult { get; }
        DialogResult ShowModal(IDialogContentPresenter presenter);
        DialogResult ShowModal(IDialogContentPresenter presenter, string title);
        DialogResult ShowModal(IDialogContentPresenter presenter, string title, DialogButton dialogButton);

        DialogResult ShowModal(IView view);
        DialogResult ShowModal(IView view, string title);        
        DialogResult ShowModal(IView view, string title, DialogButton dialogButton);
        
        void Show(IDialogContentPresenter presenter);
        void Show(IDialogContentPresenter presenter, string title);
        void Show(IDialogContentPresenter presenter, string title, DialogButton dialogButton);        

        void Show(IView view);
        void Show(IView view, string title);        
        void Show(IView view, string title, DialogButton dialogButton);

        void DoDragDelta(DragDeltaEventArgs e);
        
        Visibility TitleBarVisibility { set; get; }
        UIElement PlacementTarget { set; get; }
        PlacementMode Placement { set; get; }
        bool IsMouseCaptureOn { set; get; }

        string YesButtonCaption { get; set; }
        string NoButtonCaption { get; set; }
        string OkButtonCaption { get; set; }
        string CancelButtonCaption { get; set; }
        string IgnoreButtonCaption { get; set; }
        string AbortButtonCaption { get; set; }
        string RetryButtonCaption { get; set; }
        bool IsOkayButtonEnabled { get; set; }
    }
}